package com.agritech.state;

import com.agritech.machine.AgriculturalMachineContext;

/**
 * 维修状态类
 * 状态模式的具体状态实现
 */
public class MaintenanceState implements MachineState {
    @Override
    public void start(AgriculturalMachineContext context) {
        System.out.println("农机 " + context.getMachine().getId() + " 正在维修中，无法启动");
    }

    @Override
    public void stop(AgriculturalMachineContext context) {
        System.out.println("农机 " + context.getMachine().getId() + " 正在维修中，已经是停止状态");
    }

    @Override
    public void performTask(AgriculturalMachineContext context, String taskDetails) {
        System.out.println("农机 " + context.getMachine().getId() + " 正在维修中，无法执行任务");
    }

    @Override
    public void repair(AgriculturalMachineContext context) {
        System.out.println("农机 " + context.getMachine().getId() + " 维修完成，转换到空闲状态");
        context.getMachine().setFuelLevel(100.0); // 假设维修后加满油
        context.setState(new IdleState());
    }
    
    @Override
    public String getStateName() {
        return "维修中";
    }
}